<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    window.name = '张三';
    const school = {
        name : '李四'
    }

    // ES6前，JavaScript的this关键字指向的对象是在运行时基于函数的执行环境绑定的，
    // 在全局函数中，this指向的是window；当函数被作为某个对象的方法调用时，this就指向那个对象
    function getName() {
        console.log(this.name);
    }
    getName();              // 张三
    getName.call(school);   // 李四

    // ES6中，箭头函数不绑定this关键字，它没有自己的this关键字，
    // 如果在箭头函数中使用this关键字，那么this关键字指向的是箭头函数定义位置的上下文this。
    // 也就是说，箭头函数被定义在哪，箭头函数中的this就指向谁。
    let getName2 = () => {
        console.log(this.name);
    }
    getName2();             // 张三
    getName2.call(school);  // 张三
</script>
</html>